package com.cskaoyan.javase.oop1._9static._1basic;

/**
 * @description: static的原理
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 *引例:
 * 宠物公司新进了一批同样颜色的猫，创建一个类描述这批宠物
 * 注：创建该类时，给出一个静态成员变量和一个静态成员方法
 *
 */
public class Demo {
    public static void main(String[] args) {
        //创建Cat对象
        //Cat c = new Cat(2000);
        System.out.println(Cat.color);
        //静态的成员方法,也是推荐使用类名点访问
        Cat.touchFish();

        Cat.color = '黑';
        Cat c1 = new Cat();
        Cat c2 = new Cat();
        Cat c3 = new Cat();
        System.out.println(c1.color);
        System.out.println(c2.color);
        System.out.println(c3.color);
    }
}

//定义猫类
class Cat {
    //属性
    //静态成员变量显式赋值
    static char color = '白';
    double price;

    //行为
    public void catchMouse(){
        System.out.println("抓老鼠!");
    }
    public static void touchFish(){
        System.out.println("摸鱼");
    }

    public Cat(double price) {
        this.price = price;
    }

    public Cat() {
    }
}
